#include <bits/stdc++.h>
using namespace std;
// Shorthands
#define fastio \
ios_base::sync_with_stdio(0); \
cin.tie(0); \
cout.tie(0);
#define endl "\n"
#define int long long
#define ll long long
#define ld long double
#define vll vector<ll>
#define vvll vector<vll>
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define pll pair<ll, ll>
#define vpll vector<pll>
#define ff first
#define ss second
#define fill(a, b) memset(a, b, sizeof(a))
#define tll tuple<ll, ll, ll>
#define vtll vector<tll>
#define rep(i, a, b) for (int i = a; i < b; i++)
#define rrep(i, a, b) for (int i = a; i >= b; i--)
#define vect(a, n) \
vll a(n); \
rep(i, 0, n) cin >> arr[i];
#define all(a) a.begin(), a.end()
#define sortall(a) sort(a.begin(), a.end());
#define PI acos(-1)
#define print cout <<
void solve()
{
int a;cin>>a;int arr[a];
rep(i,0,a)cin>>arr[i];
int mx=0;rep(i,0,a)mx=max(mx,arr[i]);
multiset<int> s;for(auto x: arr)s.insert(x);
int cost=0;
for(int i=a-1;i>=0;i--){
if(mx>*(--s.end())){
mx--;
}
cost+=mx-arr[i];
auto it=s.lower_bound(arr[i]);s.erase(it);
}
cout<<cost<<endl;
}
signed main()
{
fastio int t;
t = 1;
// cin >> t;
while (t--)
{
solve();
}
}
1622A - Construct a Rectangle | 1620A - Equal or Not Equal |
1517A - Sum of 2050 | 620A - Professor GukiZ's Robot |
1342A - Road To Zero | 1520A - Do Not Be Distracted |
352A - Jeff and Digits | 1327A - Sum of Odd Integers |
1276A - As Simple as One and Two | 812C - Sagheer and Nubian Market |
272A - Dima and Friends | 1352C - K-th Not Divisible by n |
545C - Woodcutters | 1528B - Kavi on Pairing Duty |
339B - Xenia and Ringroad | 189A - Cut Ribbon |
1182A - Filling Shapes | 82A - Double Cola |
45A - Codecraft III | 1242A - Tile Painting |
1663E - Are You Safe | 1663D - Is it rated - 3 |
1311A - Add Odd or Subtract Even | 977F - Consecutive Subsequence |
939A - Love Triangle | 755A - PolandBall and Hypothesis |
760B - Frodo and pillows | 1006A - Adjacent Replacements |
1195C - Basketball Exercise | 1206A - Choose Two Numbers |